iT邦幫忙

DAY 9
0

學習C++,為了自己。系列 第 10

C++第十天

  • 分享至 

  • xImage
  •  

寫了一個撲克牌產生17張,同一數值最多只能有四張

結果我前面的陣列教學出錯啦!!!!

/*產生17張數字牌,同個數字最多只能出現4次*/


#include<iostream>

#include<cstdlib>


using namespace std;


int main()

{
	
	char cardKind[13]={'A','2','3','4','5','6','7','8','9','T','J','Q','K'}; /*存放13種牌值*/
	int a;                   /* 亂數產生的整數0~12*/		 
	
	int cardSet[13]={0};     // 紀錄13種撲克牌值的重複次數
	
	char allCard[17];  // 存放17張撲克牌的值
    std::fill_n(allCard, 17, '0');
	
	for(int i=0;i<17;i++)    // 17張撲克牌中第i張牌, i=0~16   	
	
	{
		
		while(allCard[i]=='0') // 當第i張牌等於'0',進入迴圈
		
		{
			
			a=rand()%13;            // a為亂數
		
			allCard[i]=cardKind[a]; //  把a入第i張撲克牌 
		 
			cardSet[a]+=1;          // 「a」數牌次數+1
			
			for(int j=0;j<13;j++)   //  檢查個數字牌重複次數, j=0~13
			{
				
				if(cardSet[j] ==4) /* 當重複次數等於4時,將j數字牌設值為'0' */					

				{
					
					cardKind[j]='0'; 
				
				}	
			
			}
		
		}	

	}
	
	
	for(int q=1,b;q<18;q++)  // 列印17張牌的數值
	
	{

		b=q-1;

		cout<<"第"<<q<<"張牌為 "<<allCard[b]<<endl;
	}

}	

上一篇
C++第九天-二維陣列
下一篇
C++第十一天 -為第10天解釋
系列文
學習C++,為了自己。12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言